package so.obligatorio;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Clase que toma una ruta de un archivo, lo lee y devuelve un vector de Strings donde cada uno de sus elementos son una linea del archivo 
 * @author user
 *
 */
public class ManejadorArchivos {
	
	/**
	 * M�todo encargado de leer el archivo que se pasa por parametro y devuelve un vector de Strings.
	 * @param nombreCompletoArchivo
	 * @return vectorLineas
	 */
	public String[] leerArchivo(String nombreCompletoArchivo){
		FileReader fr;
		List<String> lineas = new ArrayList<String>();
		String[] vectorLineas={};
		try {
			fr = new FileReader(nombreCompletoArchivo);
			BufferedReader br = new BufferedReader(fr);
			String lineaActual = br.readLine();
			while (lineaActual != null){
				
				lineas.add(lineaActual);
				lineaActual = br.readLine();
			}
			br.close();
			fr.close();
			
			vectorLineas = new String[lineas.size()];
			
			for(int i=0;i<vectorLineas.length;i++){
				vectorLineas[i]=lineas.get(i);
			}
		} catch (FileNotFoundException e) {
			System.out.println("Error al leer el archivo "+nombreCompletoArchivo);
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("Error al leer el archivo "+nombreCompletoArchivo);
			e.printStackTrace();
		}
		return vectorLineas;
	}
	
	public void escribirArchivo(String nombreCompletoArchivo, String[] listaLineasArchivo){
		FileWriter fw;
		try{
			fw=new FileWriter(nombreCompletoArchivo, true);
			BufferedWriter bw = new BufferedWriter(fw);
			for(int i = 0; i<listaLineasArchivo.length;i++){
				String lineaActual = listaLineasArchivo[i];
				bw.write(lineaActual);
				bw.newLine();
			}
			bw.close();
			fw.close();
		}catch(IOException e){
			System.out.println("Error al escribir el archivo"+nombreCompletoArchivo);
			e.printStackTrace();
		}
	}

}
